home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / front.lha / front / src / Character.mi < prev    next >
Text File  |  1992-08-18  |  1KB  |  60 lines

  1. (* handle strings with open character arrays *)
  2.  
  3. (* $Id: Character.mi,v 1.3 1991/11/21 14:47:50 grosch rel $ *)
  4.  
  5. (* $Log: Character.mi,v $
  6.  * Revision 1.3  1991/11/21  14:47:50  grosch
  7.  * new version of RCS on SPARC
  8.  *
  9.  * Revision 1.2  90/06/11  18:44:41  grosch
  10.  * layout improvements
  11.  * 
  12.  * Revision 1.1     89/01/12  18:05:43  vielsack
  13.  * supply procedure Assign to assign a character string
  14.  * 
  15.  * Revision 1.0     88/10/04  14:26:38  vielsack
  16.  * Initial revision
  17.  * 
  18.  *)
  19.  
  20. IMPLEMENTATION MODULE Character;
  21.  
  22. PROCEDURE IsEqual (c1, c2: ARRAY OF CHAR): BOOLEAN;
  23.   VAR
  24.     pos: CARDINAL;
  25.     len: CARDINAL;
  26.   BEGIN
  27.     pos := 0;
  28.     len := Length (c1);
  29.     IF len # Length (c2) THEN RETURN FALSE; END;
  30.     pos := 0;
  31.     LOOP
  32.       IF pos >= len THEN EXIT; END;
  33.       IF c1 [pos] # c2 [pos] THEN EXIT; END;
  34.       INC (pos);
  35.     END;
  36.     RETURN pos = len;
  37.   END IsEqual;
  38.  
  39. PROCEDURE Length (c: ARRAY OF CHAR): CARDINAL;
  40.   VAR len: CARDINAL;
  41.   BEGIN
  42.     len := 0;
  43.     LOOP
  44.       IF len > HIGH (c) THEN EXIT; END;
  45.       IF c [len] = 0C THEN EXIT; END;
  46.       INC (len);
  47.     END;
  48.     RETURN len;
  49.   END Length;
  50.  
  51. PROCEDURE Assign (VAR s1: ARRAY OF CHAR; s2: ARRAY OF CHAR);
  52.   VAR i: CARDINAL;
  53.   BEGIN
  54.     FOR i := 0 TO Length (s2) DO
  55.       s1 [i] := s2 [i];
  56.     END;
  57.   END Assign;
  58.  
  59. END Character.
  60.